Methods for efficient host processing of data files selected for recording to an optical disc media

ABSTRACT

Methods for the processing of data files to be recorded on an optical disc are provided. A selection of data to be recorded to the optical media is received and a record data structure for each file in the selection of data is created. A set of pointers is generated to sequence each record data structure in a writing order, defining a dynamically sequenced list of record data structures. Each of the record data structures is processed to produce an ordering data structure corresponding to each file in the selection of data. The ordering data structure corresponding to each file in the selection of data is processed to write the selection of data onto the optical media in the writing order.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation Application of U.S. patentapplication Ser. No. 09/539,482, filed Mar. 30, 2000, and entitled“METHODS FOR EFFICIENT HOST PROCESSING OF DATA FILES SELECTED FORRECORDING TO AN OPTICAL DISC MEDIA.” The parent application is herebyincorporated by reference.

This application is related to U.S. patent application Ser. No.09/539,481 (Attorney Docket No. ADAPP121, now U.S. Pat. No. 6,574,642),filed on the same day as the instant application and entitled “METHODSFOR PROCESSING DATA TRANSFERRED TO SYSTEM MEMORY IN PREPARATION FORRECORDING TO AN OPTICAL DISC.” This cross referenced application ishereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to the recording of data ontooptical discs, and more particularly to a method for more efficientlyprocessing data files selected for recording onto an optical disc.

2. Description of the Related Art

Optical disc storage of data offers relatively high capacity datastorage (e.g., approximately 640 Megabytes) on a relatively small andinexpensive optical disc. Optical disc recording commonly involvesrecording (sometimes referred to as “burning”) audio tracks or datafiles on one or more spiral tracks on an optical disc, which cantypically hold between 1 and 99 tracks. The high capacity of opticaldiscs for data storage represents a tremendous advancement over priorart data storage such as the floppy disk which has a capacity ofapproximately 1.4 Megabytes. Conceivably, the trend will continue andoptical discs will offer continually increasing storage capacities onsimilar sized or even smaller optical discs.

The process of burning data to an optical disc involves several stepsbetween the selection of data files to be recorded and the recording ofthose files on an optical disc. Selected data files are located,examined, and designated in a recording order in the process of the hostsystem, utilizing a CD recording software application, preparing torecord data files to the optical disc media. The process is generallyillustrated in FIG. 1.

In FIG. 1, a block diagram 100 illustrates the operations in which datafiles are processed to be recorded to a CD optical disc. The burnrequest 104 begins the process and represents a group of one or moredata files selected to be written to a CD optical disc. Due to thestorage capacity of a CD optical disc, the size of the data files mightbe quite large, or there may be many smaller files combined to form alarge volume of data. However large or small the data files may be, orwherever the data files may be located, the prior art processing of thedata in preparation to burn the files to a CD optical disc would nextperform two operations simultaneously. The processes of recording orderprocessing 104 and file system creation 106 are performed by the systemonce the files have been selected for recording. Recording orderprocessing 104 involves the ordering of the selected files in thesequence in which the data files will be burned to the CD optical disc.As is known, the reading and writing of data by a computer occurs withinthe structure of individual sectors of a certain number of bytes. Filesare typically multiple sectors in length, and the recording orderprocessing 104 involves sequencing the files to make the most efficientuse of both system resources required for the operation of recording thedata files, as well as the available space on the CD on which the datafiles will be written. During the operation of recording orderprocessing 104 the system generates a list or record of data identifyingthe data files to be recorded in the order in which they are to berecorded.

At the same time as the recording order processing 104 is occurring, theoperation of file system creation 106 is being accomplished. In order tolocate, examine, and process the data files for recording, the systemmaps out an exact location and structure of the data selected forrecording. The file system includes the path tables and directoryrecords mapping out each of the data files selected for recording.

The list translation layer 108 generates yet another record of data forthe selected data files. In the list translation layer 108, the datarecords generated by the recording order processing 104 and the filesystem creation 106 are combined and then unpacked to be sent inindividual structures (e.g., file name, directory, path, root, etc.) tothe CD recording engine 110. The data records for each data file areassembled in the sequence determined by the recording order processing104, unpacked into individual structures, and then the individualstructures sent to the CD recording engine 110. In the CD recordingengine 110, the individual structures are then re-assembled into datarecords for each file that will be recorded on a CD optical disc. Thedata records are assembled in the writing order and with the necessarydata structures to enable the CD recording engine to locate, open, andread the selected files and then write the data files and, by using theoptical CD recording circuitry 112, bum the files to the CD optical disc114.

It should be appreciated that the prior art process 100 generatesmultiple lists of data records for each data file selected for burningto a CD optical disc. As is known, each time the list or a variation isgenerated, the system dedicates and uses system resources (e.g., memory)in the evaluation of the data records and the generation of the lists.In the example of transferring data to a floppy disk with anapproximately 1.4 Megabyte capacity, the drain on available systemresources is relatively light, but with the ever-increasing capacity ofoptical discs, and the ever-increasing demand for more efficient andeconomical utilization of available storage capacity, the conservationof system resources and more efficient processing of data files inpreparation for burning to an optical disc is of paramount concern. Byway of example, thousands of data files could be selected for burning toa single CD optical disc with a capacity for 640 Megabytes of data. Inthat case, the prior art would generate no less than four differentlists of information about the selected data files, with some of thelists having identical information contained therein. Because the systemresources could rapidly become overloaded, some of the data might belost, the writing process could fail altogether, and the systemperformance itself could degrade or the system could even crash.

In view of the foregoing, there is a need for a method of processingdata files in preparation for recording to an optical disc thatminimizes drain on system resources while maximizing efficient andeconomical use of the storage capacity of an optical disc.

SUMMARY OF THE INVENTION

Broadly speaking, the present invention fills these needs by providingmethods for host processing of data files that have been selected forrecording on optical disc media. The invention provides methods forprocessing of files that minimizes the generation of lists that cataloglocation and attribute information about each data file before writingto the optical disc media. It should be appreciated that the presentinvention can be implemented in numerous ways, including as a process,an apparatus, a system, a device, a method, or a computer readablemedia. Several embodiments of the present invention are described below.

In one embodiment, a method for processing data for recording to anoptical media is provided. The method includes receiving a selection ofdata to be recorded to the optical media. A record data structure foreach file in the selection of data is created. The record data structureis comprised of a plurality of data fields defining a record ofidentifying information for each file in the selection of data. Themethod provides for generating a set of pointers to sequence each recorddata structure in a writing order. The set of pointers defines adynamically sequenced list of record data structures. Next, each of therecord data structures is sequentially processed according to thedynamically sequenced list to produce an ordering data structurecorresponding to each file in the selection of data, and defining arecord of pointers to a source location of each file in the selection ofdata from where each file is read to be recorded to the optical media.The method then provides for processing the ordering data structurecorresponding to each file in the selection of data to write theselection of data onto the optical media in the writing order.

In another embodiment, a method for recording data to optical media isprovided. The method calls for receiving a request to record a selectionof data to optical media, and for processing the selection of datathrough a file system database block. The file system database blockincludes the operations of generating a record data structure for eachfile in the selection of data, sequencing each file in the selection ofdata according to a writing order, and generating an ordering datastructure for each file in the selection of data. The sequencing of eachfile in the selection of data is accomplished by generating pointersassociated with each record data structure. The generating of theordering data structures is accomplished in the writing order. Next, themethod provides for providing the ordering data structure for each filein the selection of data to an optical media recording engine. Theordering data structures are provided in the writing order, and then theselection of data is recorded to optical media.

In still a further embodiment, a computer readable media having programinstructions for recording data to optical media is provided. Thecomputer readable media includes program instructions for receiving arequest to record a selection of data to optical media, and programinstructions for processing the selection of data through a file systemdatabase block. The file system database block includes the operationsof generating a record data structure for each file in the selection ofdata, for sequencing each file in the selection of data according to awriting order. The sequencing is accomplished by generating pointersassociated with each record data structure. The file system databaseblock further includes the operations of generating an ordering datastructure for each file in the selection of data. The generating of theordering data structures is accomplished in the writing order. Thecomputer readable media further provides program instructions forproviding the ordering data structure for each file in the selection ofdata to an optical media recording engine. The providing of the orderingdata structures is in the writing order. Finally, the computer readablemedia includes program instructions for recording the selection of datato optical media.

One benefit and advantage of the invention is more efficient processingof data files selected to be recorded to an optical disc media. The moreefficient allocation and use of system resources in the processing ofdata files for recording to optical disc media prevents incomplete datatransfer, buffer under-run, or system crash. Another benefit of thepresent invention is that with more efficient processing of data files,the operation proceeds faster and more reliably. This allows a user toselect and record large amounts of data to record to an optical discmedia and realize the benefits of the storage capacity of optical discmedia without system overload or failure.

Other advantages of the invention will become apparent from thefollowing detailed description, taken in conjunction with theaccompanying drawings, illustrating by way of example the principles ofthe invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings, andlike reference numerals designate like structural elements.

FIG. 1 is a block diagram illustrating the prior art operations in whichdata files are processed to be recorded to a CD optical disc.

FIG. 2A illustrates a block diagram of the primary operations inpreparing data files to be written to an optical disc in accordance withone embodiment of the present invention.

FIG. 2B illustrates a record data structure in accordance with oneembodiment of the present invention.

FIG. 2C shows the use of pointers in the dynamic file ordering of recorddata structures in accordance with one embodiment of the presentinvention.

FIG. 3 illustrates an ordering data structure in accordance with oneembodiment of the present invention.

FIG. 4 shows a flowchart diagram illustrating the method operationsperformed in which data is recorded on an optical disc in accordancewith one embodiment of the invention.

FIG. 5 shows a flowchart diagram illustrating the method operationsperformed in which data is recorded on an optical disc in accordancewith another embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An invention is provided for the efficient processing of data that isselected to be recorded onto an optical disc media. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. It will beunderstood, however, to one skilled in the art, that the presentinvention may be practiced without some or all of these specificdetails. In other instances, well known process operations have not beendescribed in detail in order not to unnecessarily obscure the presentinvention.

FIG. 2A illustrates a block diagram 200 of the primary operations inpreparing data files to be written to an optical disc in accordance withone embodiment of the present invention. The method is applicable towriting data files to any type of optical media (e.g., DVD discs, CD-Rdiscs, CD-RW discs, mini-discs, etc.), and is illustrated by way ofexample using the common compact disc (CD). The selection of data filesto be recorded to CD initiates a bum request 102. The selection of filescan be accomplished in any number of ways including, for example,operator input into the system through the graphical user interface(e.g., dragging a set of files to a CD device icon on a computermonitor), or executing a CD read/write software application and inresponse to a scripted set of queries, the operator selecting a group ofone or more data files to be written to a CD optical disc. The bumrequest 102 is the selection and identification of a group of one ormore data files to be copied from their source and written to a CDoptical disc.

In the file system database block 202, the data files are examined andprocessed in order to prepare for the selected data files to be recordedon to a CD optical disc. Several discrete operations occur in theprocessing of the data files as will be discussed in greater detailbelow. It should be understood that some of the operations occursimultaneously with others, in various combinations, and someembodiments either eliminate or supplement the examples that areprovided below. The file system database block 202 encompasses thosevarious operations that are performed to prepare selected data to beburned to a CD. In one embodiment, the file system database block 202 isa collection of sub-routines or other computer code that functions tomanipulate the selected data files, performing the functions listed inthe exemplary embodiments below in the execution of the softwareapplication code that records data to a CD optical disc.

In one embodiment, the processing includes examining each of the datafiles selected for recording to CD and generating a record datastructure for each file. A record data structure is a record ofidentifying information about one of the data files selected to berecorded to a CD that will enable the writing of the source data file toa destination CD.

One embodiment of a record data structure is illustrated in FIG. 2B.Typical data fields include, as illustrated, the file parent of the datafile. This information is used to map the file path to the data file inits destination location in order to locate the file on the destinationCD. The volume label index is additional location identificationinformation naming the source volume of the data file. The file sizeidentifies the exact size of the file in bytes (or other suitable unitsof measure) to be used in calculating and identifying the destinationlocation of the data and in making the determination which files will besent to system cache memory during the writing operation. Files that aresent to system cache memory are further identified by the location inthe system cache memory which holds the data file as described ingreater detail below, and the file size is used to calculate thatlocation. The logical block number identifies the destination locationby the logical block where the data file will be written. The file timeis the most recent modification time of the data file. This providesboth the time and the date of the file, and can be used, for example, inboth cataloging as well as differentiating between two identically namedfiles. The file source path is the complete path to the data file inorder to locate and read the file during the recording operation, andthe file attributes include such information as whether the file is asystem file, a read-only file, if it is a hidden file, and whether it isan archive file.

Data mode is another field in the record data structure generated by thefile system database and illustrated in FIG. 2B. Possible data modesinclude mode 1 or mode 2, and if the data file is mode 2, whether it ismode 2 form 1 or mode 2 form 2. Data mode provides necessary identifyinginformation about a data file and how it will be cached in system cachememory or written to the destination optical disc. In particular, datamode determines the number of bytes of data and other information thatare contained in a sector. Other fields that may be included in therecord data structure are whether or not the source data file is locatedon removable media such as another CD, a data tape, a floppy disk, adisk cartridge (e.g., a Jaz™ disk, a Zip™ disk, etc.) and the like,whether the data file contains an embedded subheader, and whether or notthe selected data file has been written to the destination CD in anearlier session.

FIG. 2B illustrates one embodiment of a typical record data structure.Additional data fields may be supplemented, and some illustrated fieldsmay be deleted according to the configuration of the host system and theCD writing software application. The record data structure provides alist of a data file's location and identifying information, and a recorddata structure is created for each data file selected to be recorded sothat the files selected to be written to an optical disc can be located,arranged, and successfully copied from one or more source locations to adestination CD.

Returning to FIG. 2A, the generating of the record data structures isone of several processes that may occur in the file system databaseblock 202. In another embodiment, the processing of the data filesselected for burning to a CD includes determining which of the selectedfiles will be sent to the system cache memory in the process of writingto a CD. As is known, the successful writing of data to a CD requires anuninterrupted flow of data to the optical CD recording circuitry 112during the recording operation. System cache is filled with data filesidentified during the processing that occurs in the file system databaseblock 202, and then sent to the optical CD recording circuitry 112 in asteady stream of data during the actual burn.

In still another embodiment, the processing includes the sequencing ofthe data files in the order in which they will be written to a CDoptical disc. As is known, data files are of varying lengths and can befrom a single sector to several sectors in length. Additionally, somedata files are required to remain in a fixed location relative to otherdata files, for example, when the data files are part of an executablesoftware application. Sequencing of files maximizes the efficient use ofavailable space and configuration of the destination optical disc, andmaintains any required structure the data files may need to execute adesired function or task.

One embodiment of the present invention accomplishes the ordering ofdata files by using pointers to list the data files in an identifiedsequence. The use of pointers significantly reduces the consumption ofsystem resources in the process of sequencing the record datastructures. Typically, the method of sequencing the selected data filesfor writing to a CD in prior art, involved the complete re-generation ofthe record data structure or similar list of the data file location andidentification information. By using pointers, the record data structure(FIG. 2B) is generated only once for each data file selected forrecording to CD. As can be seen in FIG. 2C, the record data structuresare compiled in the order in which the files were examined. Thesequencing, or dynamic file ordering, of the record data structuresidentifies the order in which the source data files will be written tothe destination optical disc. The dynamic file ordering is accomplishedthrough the use of pointers to the record data structures identifyingthe order in which their associated data files will be written.

Returning again to FIG. 2A, the file system database block performsanother task in yet another embodiment of the present invention. Thedata files selected to be written to CD need to be verified to ensurethat they exist in the location reflected in the record data structure,that they can be opened, and that they are of the size that is reflectedin the record data structure. In the verification of the data files, thegeneral integrity of the selected data files is verified in preparationto burning the data files to CD.

Before the process of preparing and burning data files to an opticaldisc proceeds to the CD Recording Engine 204, the record data structuresare processed to generate an ordering data structure that will be passedon to the CD recording engine 204. As discussed above, one of theproblems with the prior art was with the multiple lists of practicallyidentical information that were generated. Not only were multiple listsgenerated, but a combined list was unpacked and sent a structure at atime to the CD recording engine where it was then re-assembled beforethe source data files could be identified, located, and written to CD.This puts a significant burden on system memory resources, and canresult in incomplete data transfer, buffer under-run, or system crash.As the storage capacity of optical discs increases, the number of filesto be processed to be written to a CD in a single session alsoincreases, and the prior art management of file processing will not bepossible. The present invention substantially reduces the consumption ofsystem memory resources by more efficient utilization of a single listor compilation of record data structures, and also by use of pointers toselected data files.

FIG. 3 illustrates a typical ordering data structure in accordance withone embodiment of the present invention. Like the record datastructures, one ordering data structure is generated for each data fileselected to be written to a CD. The ordering data structure is a recordof pointers to a source data file. Once the source data files have beenexamined, the record data structures generated, and the dynamic orderingof the data files completed, the record data structures are processed togenerate an ordering data structure for each data file. The processingis accomplished in the order in which the associated data files will bewritten to CD. The ordering data structure is a pointer to a source datafile, and the ordering data structure is sent to the CD Recording Engine(FIG. 2A, 204) in the writing order.

The ordering data structure illustrated in FIG. 3 shows four exemplarydata fields. The first field, the file source path, is the pointer tothe source location of the data file. Following the path as listed leadsto the data file at its source. The remaining three fields in theordering data structure are used to locate those files that were cachedin system cache memory. For those files, the source path can only pointto system cache memory. The file start offset and file end offsetidentify the exact location in system cache memory of the data file, andthe file pad to size is the number of bytes (or other suitable unit ofmeasure) that must be added to a file to complete a sector of storagespace. As is known, a file is generally written from the beginning of asector or logical block. Files, however, are not necessarily the samelength as a sector or logical block, and in those circumstances, emptybytes or pad to size are added to a file to complete a sector or logicalblock. The file pad to size field of the ordering data record identifiesthat filler space so that the exact location of data can be identified.

Returning once again to FIG. 2A, the ordering data structures are passedfrom the file system database block 202 to the CD recording engine 204in the order in which the associated data files will be written to theoptical disc. In one embodiment, the CD recording engine 204 thenfollows the pointers of the ordering data structures and begins readingthe data files into the optical CD recording circuitry 112. It is the CDrecording circuitry 112 that accomplishes the actual writing or burningof the data files to the optical disc 114.

FIG. 4 shows a flowchart diagram 400 illustrating the method operationsperformed in which data is recorded on an optical disc in accordancewith one embodiment of the invention. As above, the method is applicableto the recording of files to any optical media, and the CD is used toillustrate by way of example in the following description. The methodbegins with operation 402 in which a request is received to write a setof files to a CD media. Such a request might occur, for example, when anoperator selects a number of data files desired to be recorded on a CDusing a graphical user interface, and drags those files to an icon of aCD player/recorder on the computer desktop. In another example, anoperator might launch a CD recording program, and in response to a setof queries from the program, select a number of data files to berecorded to a CD optical disc.

The method proceeds to operation 404 in which the files that have beenselected for recording are examined and the record data structures forthe set of files are generated. The examination of the files includestracing the complete source path to the desired data file. By way ofexample, the files may be located on a local hard drive, on a networkserver, on a remote server accessed through the Internet, or in anylocation accessible by whatever hardware or physical cabling to therecording system. In addition to the source path, the selected datafiles are examined to determine their size, when they were created orlast modified, the attributes of the selected files, in what data modethey exist, whether or not the selected data files have been written tothe CD in a previous session, and other such information as may berequired to locate, access, read, write, and identify the selected datarecords.

The record data structures, as described above and illustrated in FIG.2B, contain the necessary location and attribute information associatedwith the data to enable the system to designate the order in which thefiles will be recorded, to designate which files will be cached toensure a steady stream of data during recording, and to provide thenecessary location information to the CD recording engine. A record datastructure is generated for each file selected for recording onto a CDoptical disc.

The method next advances to operation 406 where pointers are generatedidentifying each record data structure in the order in which thecorresponding data file will be written to the CD. As discussed above inreference to FIG. 2C, once the record data structures are created, thefiles can be ordered to maximize the most efficient use of space andsystem resources in the recording of the data to CD. In one embodiment,the dynamic ordering of the record data structures by pointers obviatesthe need for additional lists of data files and their source paths whichconsume considerable system memory resources. The pointers, on the otherhand, demand minimal resources, using only about 4 bytes of memory eachin a 32-bit operating system. As is known in the operation of burning aCD, a constant flow of data must be maintained. By minimizing thedemands on system memory resources caused by multiple generations oflists and tables, using pointers to define the writing order freessystem resources to be used where they are most needed.

The method then goes to operation 408 where one of the record datastructures is processed to generate an ordering data structure. Theprocessing is accomplished on the record data structure in the order inwhich the pointers were assigned in operation 406. Thus, the record datastructure to be processed is whichever record data structure is next inorder according to the pointer assigned. In one embodiment, theprocessing includes calculating a file start offset and file end offsetto a particular location in the system cache memory. The processing alsoincludes calculating a pad to add to a file to complete a sector. Sincefiles are written from the beginning of a logical block, if a fileshould end somewhere in the middle of a logical block, the padcalculated is how much to add to that file so that the next file will bewritten starting at the beginning of the very next logical block.

An ordering data structure, as described above in reference to FIG. 3,is a set of pointers to the source data file with additional informationproviding the recording engine with the exact size and location of thesource data file. In one embodiment, the additional information includesthe location of a source data file that has been cached so that therecording engine will access the data file from system cache instead offrom the original data source. In another embodiment, the additionalinformation includes a pad to size value so that the recording engineknows how many bytes have been added to the data source file to completea sector. The additional information amplifies the pointers, but theordering data structures remain a set of pointers. Unlike the recorddata structures which are lists as described above, the ordering datastructures are pointers requiring far fewer system memory resources tostore, transfer and process.

Next, the method advances to operation 410 where the ordering datastructure is passed to a recording engine in the writing order. Unlikeprior art where yet another list would have been generated containinglocation, size, and other attribute information about each data file,the ordering data structure, in one embodiment of the present invention,provides a set of pointers directly to the data file to be written. Theordering data structure is passed in the order in which the data fileswill be written to the CD, and requires little or no additionalprocessing by the recording engine.

In decision block 412, the method calls for making a determination as towhether or not any record data structures remain to be processed. Ifthere are record data structures to be processed, the next record datastructure in writing order is processed as the method loops back tooperation 408. If no record data structures remain, the method advancesto operation 414.

In operation 414, the first ordering data structure in writing order isaccessed by the recording engine and, following the pointers andlocation information contained therein, the source file of data ismanipulated to be written to the CD. In one example, the source file islocated on a host system hard drive. In another example, the source fileis located on a remote server. In still another example, the source fileis one of group of one or more files that have been cached for steadystream writing of data. Wherever the source file may be located, therecording engine follows the pointers and other location information inthe ordering data structure to locate and manipulate the source file forwriting to the CD.

In accordance with the response to decision block 416, the method loopsthrough operation 414 until each of the ordering data structures hasbeen accessed and the associated data files written to the CD. When theresponse to decision block 416 is no, all of the ordering structureshave been accessed, resulting in all of the selected data files beingwritten to a CD, and the method is done.

FIG. 5 shows a flowchart diagram 500 illustrating the method operationsperformed in which data is recorded on an optical disc in accordancewith another embodiment of the invention. As above, the method isillustrated using the example of burning a CD, but is applicable to anyoptical media. The method begins with operation 502 in the same manneras the method described in reference to FIG. 4 with a request to write aset of files to a CD media. As above, the request can be in the form ofa selected group of data files being dragged to a CD player/recordericon on a computer desktop, or by selecting a group of one or more datafiles in response to queries from a CD recording software application.

The method advances to operation 504 where the selected data files areexamined by the recording program to create the record data structuresas described above and illustrated in FIG. 2B. A record data structureis created for each file selected to be recorded onto the CD opticaldisc, and provides the location pointers to the source files, file size,data mode, the last time and date the file was updated, and other fileattribute information necessary for locating the source file andallocating necessary space and method of recording to write the selecteddata files onto a CD.

The method proceeds to operation 506 where pointers are generated toarrange the record data structures in an order in which the associateddata files will be recorded onto the CD. The order is the writing order,and as described in reference to FIG. 4, pointers are used in thedynamic ordering of the record data structures associated with each ofthe data files selected to be written to a CD. The use of pointersobviates the generation of yet another list and conserves systemresources. As the writing order is generated, those files that will becached are identified and assigned a specific location in the systemcache. As is known, the operation of burning files to a CD requires aconstant stream of data while using a great deal of system resources.The caching of data files maximizes the efficient use of availablememory and resources, and ensures the steady flow of data to the CDwriting circuitry. Further, the file integrity of each of the data filesidentified in a record data structure is verified to ensure that eachfile can be opened and can be read.

The method then advances to operation 508 where the record datastructures are processed to generate ordering data structures. Therecord data structures are processed in the writing order that wasgenerated in operation 506. The ordering data structure, as describedabove and illustrated in FIG. 3, is a set of pointers to the data files.The ordering data structure points the recording engine to the sourcedata file from where it will be read in the process of writing the file.Thus, if the file has been cached, the ordering data structure points tothe exact location in the system cache where the file is located.

The method proceeds to operation 510 and the ordering data structuresare passed to the recording engine in the writing order. By passing onlythe ordering data structures, the method conserves valuable systemmemory resources. Using the ordering data structures, the recordingengine need not generate or compile additional lists or tables as wasnoted in prior art, and using pointers instead of the entire structureof the record data structure minimizes the amount of system resourcesrequired to communicate the necessary information to the recordingengine.

In operation 512, the method proceeds to accessing the ordering datastructures which have been provided to the recording engine in writingorder. The associated data files are burned to the CD in the writingorder, and the method is done.

One benefit and advantage of the invention is more efficient andreliable transfer of data files to a CD optical disc. Another benefit isfaster turn around time for burning large amounts of data to a CDoptical disc by efficient processing as described above.

The invention may employ various computer-implemented operationsinvolving data stored in computer systems. These operations are thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. Further, the manipulationsperformed are often referred to in terms, such as producing,identifying, determining, or comparing.

Any of the operations described herein that form part of the inventionare useful machine operations. The invention also relates to a device oran apparatus for performing these operations. The apparatus may bespecially constructed for the required purposes, or it may be a generalpurpose computer selectively activated or configured by a computerprogram stored in the computer. In particular, various general purposemachines may be used with computer programs written in accordance withthe teachings herein, or it may be more convenient to construct a morespecialized apparatus to perform the required operations.

The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can thereafter be read by acomputer system. Examples of the computer readable medium includeread-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetictapes, and other optical data storage devices. The computer readablemedium can also be distributed over network coupled computer systems sothat the computer readable code is stored and executed in a distributedfashion.

The exemplary embodiments described herein are for purposes ofillustration and are not intended to be limiting. Accordingly, thoseskilled in the art will recognize that the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

1. A method for processing data for recording to an optical media,comprising: receiving a selection of data to be recorded to the opticalmedia; creating a record data structure for each file in the selectionof data, the record data structure comprised of a plurality of datafields defining a record of identifying information for each file in theselection of data; generating a set of pointers to sequence each recorddata structure in a writing order, the set of pointers defining adynamically sequenced list of record data structures; sequentiallyprocessing each of the record data structures according to thedynamically sequenced list to produce an ordering data structurecorresponding to each file in the selection of data and defining arecord of pointers to a source location of each file in the selection ofdata from where each file is read to be recorded to the optical media;and processing the ordering data structure corresponding to each file inthe selection of data to write the selection of data onto the opticalmedia in the writing order.
 2. The method for processing data forrecording to an optical media of claim 1, wherein the plurality of datafields defining the record of identifying information for each file inthe selection of data includes: a file parent; a file size; adestination logical block number; a file source path; file attributes;and a data mode.
 3. The method for processing data for recording to anoptical media of claim 1, further comprising: designating files to bewritten to system cache memory; assigning the designated files to aspecific location in system cache memory; and verifying that each recorddata structure accurately defines each file in the selection of data. 4.The method for processing data for recording to an optical media ofclaim 1, wherein each ordering data structure includes pointers to acorresponding source file.
 5. The method for processing data forrecording to an optical media of claim 4, wherein the pointers includeone or more of a group of information strings referencing source datafiles and including a file source path, a file start offset, a file endoffset, and a file pad to size;
 6. The method for processing data forrecording to an optical media of claim 1, wherein the processing of theordering data structure corresponding to each file in the selection ofdata includes passing the ordering data structure corresponding to eachfile in the selection of data to a CD recording engine, the CD recordingengine writing the selection of data onto the optical media in thewriting order.
 7. The method for processing data for recording to anoptical media of claim 1, wherein the method is executed by a computerexecuting code that defines a file system database block.
 8. The methodfor processing data for recording to an optical media of claim 1,wherein the method is executed by a computer reading a computer readablemedia having program instructions for executing the method.
 9. A methodfor recording data to optical media, comprising: receiving a request torecord a selection of data to optical media; processing the selection ofdata through a file system database block, the file system databaseblock including the operations of: generating a record data structurefor each file in the selection of data; sequencing each file in theselection of data according to a writing order, the sequencing beingaccomplished by generating pointers associated with each record datastructure; and generating an ordering data structure for each file inthe selection of data, the generating being accomplished in the writingorder, providing the ordering data structure for each file in theselection of data to an optical media recording engine, the providingbeing in the writing order; and recording the selection of data tooptical media.
 10. The method for recording data to optical media ofclaim 9, further comprising: examining each file in the selection ofdata to be recorded to optical media.
 11. The method for recording datato optical media of claim 9, further comprising: verifying each file inthe selection of data to be recorded to optical media, the verifyingincluding: verifying source location; verifying file size; and verifyingfile integrity.
 12. The method for recording data to optical media ofclaim 9, wherein the record data structure is comprised of a pluralityof data fields defining a record of identifying information for eachfile in the selection of data.
 13. The method for recording data tooptical media of claim 12, wherein the plurality of data fields definingthe record of identifying information for each file in the selection ofdata includes one or more of: a file parent data field; a file size datafield; a destination logical block number data field; a file source pathdata field; a file attributes data field; and a data mode data field.14. The method for recording data to optical media of claim 9, whereinthe file system data base block further includes the operations of:designating data files to be written to system cache memory; andassigning data files designated to be written to system cache memory toa location in system cache memory.
 15. The method for recording data tooptical media of claim 9, wherein the ordering data structure comprisesa record of pointers to a source data file.
 16. The method for recordingdata to optical media of claim 15, wherein the record of pointersincludes a pointer to a source location of a data file.
 17. The methodfor recording data to optical media of claim 9, wherein the method isexecuted by a computer executing program instructions defining themethod.
 18. A computer readable media having program instructions forrecording data to optical media, the computer readable media comprising:program instructions for receiving a request to record a selection ofdata to optical media; program instructions for processing the selectionof data through a file system database block, the file system databaseblock including the operations of: generating a record data structurefor each file in the selection of data; sequencing each file in theselection of data according to a writing order, the sequencing beingaccomplished by generating pointers associated with each record datastructure; and generating an ordering data structure for each file inthe selection of data, the generating being accomplished in the writingorder, program instructions for providing the ordering data structurefor each file in the selection of data to an optical media recordingengine, the providing being in the writing order; and programinstructions for recording the selection of data to optical media. 19.The computer readable media of claim 18, further comprising programinstructions for verifying each file in the selection of data to berecorded to optical media, the verifying including: verifying sourcelocation; verifying file size; and verifying file integrity.
 20. Thecomputer readable media of claim 18, wherein the file system data baseblock further includes the operations of: designating data files to bewritten to system cache memory; and assigning data files designated tobe written to system cache memory to a location in system cache memory.